module PerformedHaircut (
PerformedHaircut, --CONSTRUCTOR: MkPerformedHaircut Haircut PerformedHaircutNotes
createPerformedHaircut, -- createPerformedHaircut :: Haircut -> PerformedHaircutNotes -> PerformedHaircut
hisKindOfHaircut, -- hisKindOfHaircut :: PerformedHaircut -> Haircut
hisSpecificNotes -- hisSpecificNotes :: PerformedHaircut -> PerformedHaircutNotes
) where

import Haircut

{-
AUTOR:Gaston Charkiewicz
DESCRIPCION: representa un corte de pelo hecho en una situacion especifica a algun cliente.
OBSERVACIONES: posee unas notas, que representan las tipificaciones del corte realizado en la 
ocasion en que fue realizado.
-}

data PerformedHaircut = MkPerformedHaircut Haircut PerformedHaircutNotes
type PerformedHaircutNotes = String

createPerformedHaircut :: Haircut -> PerformedHaircutNotes -> PerformedHaircut
createPerformedHaircut aHaircut someNotes = MkPerformedHaircut aHaircut someNotes

-- No devuelvo el tipo verdadero porque no corresponde que devuelta un string por conveniencia,
-- para esas cosas esta el controlador
-- No lo vamos a usar nunca
hisKindOfHaircut :: PerformedHaircut -> Haircut
hisKindOfHaircut (MkPerformedHaircut hisKind hisSpecNotes) = hisKind

hisSpecificNotes :: PerformedHaircut -> PerformedHaircutNotes
hisSpecificNotes (MkPerformedHaircut hisKind hisSpecNotes) = hisSpecNotes
